1. Field of the Invention
The present invention relates generally to an improved data processing system, and in particular, to a method for determining utilization of computing resources in a data processing system. Still more particularly, the present invention relates to a computer implemented method, system, and computer usable program code for adjusting processor utilization data in environments that include polling applications.
2. Description of the Related Art
Software applications, hardware components, and firmware applications often have a provision to perform tasks upon the occurrence of certain events in a data processing system. An event may be a status or a change of status of a register, code, information, data, process, component, or application in the data processing system. For example, a network card being able to connect to a data network may be an event. Availability of data requested from a hard disk may be another example of an event. A function returning a computed value may also be an event. A switch being turned on or off may be an event. A register or a variable attaining a certain value may also be one of many possible examples of an event.
Software applications, hardware components, and firmware applications are collectively called applications for the purposes of this disclosure. In some instances, an application may learn about an event asynchronously, such as when the operating system informs the application that the event has occurred. In other cases, an application may poll a component of the operating system or a hardware component to determine whether the event of interest has occurred.
Polling is the process of requesting information, often repeatedly, at certain predetermined intervals or upon existence of certain conditions. Furthermore, polling allows the polling application to continue executing and remain in control as to when the requested information will be received. As an analogy, polling is similar to repeatedly asking questions like, “do you have that information for me?” or “has this event occurred yet?”.
An application that uses polling is called a polling application. A polling request is also called a poll.
A polling application polls a polled application. A polled application may be another application, such as the operating system. The polled application may respond to the polling request in any manner suitable for a particular data processing environment. For example, an operating system may not respond at all, respond selectively, respond in the affirmative or negative, respond with data, or a combination thereof, in response to a polling request.
Latency of a data processing environment is a measure of the time the data processing environment takes to identify and respond to a request. A low latency data processing environment is a data processing environment that is able to respond to a request within a preset threshold time limit. In some example low latency data processing environments, the latency may be only a few microseconds between a request and a response.
Data processing environments, and particularly low latency environments, often include polling as a way for providing quick response when events occur in the data processing environment. A polling application polls repeatedly and responds as soon as a poll returns the desired information. Data processing environments often include a number of polling applications that may poll for a variety of information.
Reporting applications or reporting tools are applications that generate reports using data collected from various data sources. A type of reporting tool can generate a report that provides information about the utilization of computing resources in a data processing environment. Utilization of a resource is a factor of the portion of time used to perform work and the total time over which utilization is determined.
A variety of reporting tools presently exist to generate reports, including utilization reports. Often, reporting tools use different data acquisition methods, such as application program interfaces (APIs), to gather the information from which to compute the report. Additionally, the data acquisition methods of reporting tools are designed to look for and collect the commonly known parameters from well-known system components.